78K/0S REGISTER SET The following is a list of the 78K/0S registers used by AS78K0S: x(r0), a(r1), 8-bit registers c(r2), b(r3), e(r4), d(r5), l(r6), h(r7) ax(rp0), 16-bit registers bc(rp1), de(rp2), hl(rp3) sp Stack pointer psw Program status word cy Carry flag Register names are NOT case sensitive.
78K/0S INSTRUCTION SET The following tables list all 78K/0S mnemonics recognized by the AS78K0S assembler. The designation [] refers to a required addressing mode argument. The first list specifies the format for each addressing mode supported by AS78K0S: addr16 direct addressing via 16-bit address !addr16 immediate addressing only required for the long br instruction @saddr short direct addressing 0xFE20 <= saddr <= 0xFF1F @saddr.bit short direct addressing @saddr,bit with bit addressing (0-7) 0xFE20 <= saddr <= 0xFF1F *sfr special function registers 0xFF00 <= sfr <= 0xFFCF or 0xFFE0 <= sfr <= 0xFFFF *sfr.bit special function registers *sfr,bit wiht bit addressing (0-7) 0xFF00 <= sfr <= 0xFFCF or 0xFFE0 <= sfr <= 0xFFFF label branch label (pc relative addressing) #byte immediate data (8 bit) #word immediate data (16 bit) rn registers (8 bit) x, a, c, b, e, d, l, h r0-r7 rpn registers (16 bit) ax, bc, de, hl rp0-rp3 sp stack pointer psw program status register cy carry flag [DE], [HL] register indirect addressing [HL+byte] based register indirect addressing The terms addr16, saddr, sfr, bit, label, byte, and word may all be expressions. Absolute addresses (CONSTANTS) will be checked as being in the 'saddr' range first and then as being in the 'sfr' range if no explicit @ or * is specified. The bit addressing modes *sfr.bit and @saddr.bit use the '.' as a separator from the address and the bit value. The bit value can be a numeric constant, a named constant, an expres- sion, or a combination of these. Because the '.' is also a legal character in a name or label the assembler may not be able to resolve the address and bit value. The optional method of using a ',' to separate the address and bit value may be used in this case. If the 'sfr' or 'saddr' address is external then the user is responsible to ensure the addresses are in the proper ranges. NO ERRORS will be reported by the linker. Note that not all addressing modes are valid with every in- struction, refer to the 78K/0S technical data for valid modes.
Inherent Instructions nop halt stop ret reti di ei
Branch Instructions bc label bnc label bz label bnz label br [] dbnz [],addr16 bt [],addr16 bf [],addr16
Single Operand Instructions inc [] dec [] incw rpn dec rpn set1 [] clr1 [] set1 cy clr1 cy not1 cy call addr16 callt [] push [] pop []
Double Operand Instructions movw sp,ax movw ax,sp movw [],[] xchw ax,rpn add a,[] add saddr,#byte addc a,[] addc saddr,#byte sub a,[] sub saddr,#byte subc a,[] subc saddr,#byte and a,[] and saddr,#byte or a,[] or saddr,#byte xor a,[] xor saddr,#byte cmp a,[] cmp saddr,#byte adddw ax,#word subw ax,#word cmpw ax,#word ror a,1 rol a,1 rorc a,1 rolc a,1
... Exit the ASxxxx Documentation